//#ifndef MAINSUBJECT_H
//#define MAINSUBJECT_H
//
//#include <list>
//#include "Singleton.h"
//
//class ABObserver;
//class Event;
//class HashEntry;
//
//class MainSubject : public Singleton<MainSubject>
//{
//public:
//	MainSubject();
//	~MainSubject();
//
//	bool AttachObserver(ABObserver* a_pObserver);
//	bool DetachObserver(ABObserver* a_pObserver);
//	void NotifyObservers(const Event& a_event, float a_dt);
//
//	void Update(float a_dt);
//
//	const unsigned int Hash(const char* a_pKey);
//
//private:
//	typedef std::list<ABObserver*> ObserverList;
//	ObserverList m_observers;
//};
//
//#endif //MAINSUBJECT_H